import { isWechatBroser } from "_commonFn/browser"
import { isLonginChosePage } from "_projectFn/login"
import { textVantToa } from "_projectFn/prompt"
import { getWechatSDK } from "_network/request"

// url = `${comPort}/index.html`
export function share(addApiList = [], url = location.href.split('#')[0], imgUrl = 'https://www.mrobiji.com/images/global-share.png', fn = ''){
    let jsApiList = ['onMenuShareTimeline', 'onMenuShareWeibo', 'onMenuShareAppMessage', 'onMenuShareQQ']
    jsApiList = jsApiList.concat(addApiList)
    if(isWechatBroser()){
        toGetWechatApiPro(url, imgUrl)
        .then(data => {
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: data.AppId, // 必填，公众号的唯一标识
                timestamp: data.timestamp, // 必填，生成签名的时间戳
                nonceStr: data.nonceStr, // 必填，生成签名的随机串
                signature: data.signature,// 必填，签名
                jsApiList:jsApiList
                // 必填，需要使用的JS接口列表
            });
            wx.ready(function () {
                setShare(url, imgUrl)
                if(typeof fn === 'function'){
                    fn();
                }
            });
        }).catch((res, status) => {
            console.log(res);
            console.log(status);
        });
    }
}

export function toGetWechatApiPro(url = location.href.split('#')[0]) {
    // console.log('url', url)
    return getWechatSDK(url)
}

export const defaultShare = ({
    link = location.href,
    imgUrl = 'https://www.mrobiji.com/images/global-share.png', 
    title = '工业品业务互助社群平台', 
    rotes = '工业品业务互助社群平台！',
    fn,
}) => {
    setShare(link, imgUrl, title, rotes)
    if (typeof fn === 'function') {
        fn()
    }
}

export function globalShare({
    link = location.href,
    imgUrl = 'https://www.mrobiji.com/images/global-share.png', 
    title = $('.page-title').text(), 
    rotes = '工业品业务互助社群平台',
    addApiList = [],
    fn
}) {
    let jsApiList = ['onMenuShareTimeline', 'onMenuShareWeibo', 'onMenuShareAppMessage', 'onMenuShareQQ']
    jsApiList = jsApiList.concat(addApiList)
    if(isWechatBroser()){
        toGetWechatApiPro(link, imgUrl)
        .then(data => {
            wx.config({
                debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: data.AppId, // 必填，公众号的唯一标识
                timestamp: data.timestamp, // 必填，生成签名的时间戳
                nonceStr: data.nonceStr, // 必填，生成签名的随机串
                signature: data.signature,// 必填，签名
                jsApiList:jsApiList // 必填，需要使用的JS接口列表
            })
            wx.ready(function () {
                setShare(link, imgUrl, title, rotes)
                if (typeof fn === 'function') {
                    fn()
                }
            })
        })
        .catch(res => {
            console.log(res)
        })
    }
}

export function setShare(
    link = location.href, 
    imgUrl = 'https://www.mrobiji.com/images/global-share.png', 
    title = '工业品业务增效加速社群平台', 
    rotes = '工业品业务互助社群平台') {
    let shareData = {
        shareFriend: { // 分享给朋友
            title: title, // 分享标题
            desc: rotes, // 分享描述
            link: link, // 分享地址
            imgUrl: imgUrl // 分享图片
        },
        shareDynamic: { // 分享动态
            title: title, // 分享标题
            link: link, // 分享地址
            imgUrl: imgUrl //分享图片
        }
    }
    customShare({ shareData })
}

export function getWechatApi({
    addApiList = [], 
    fn = '',
    debug = false,
    testTime = false,
    startTime = 0,
    url
}){
    const jsApiList = ['onMenuShareTimeline', 'onMenuShareWeibo', 'onMenuShareAppMessage', 'onMenuShareQQ',
'updateAppMessageShareData', 'updateTimelineShareData', 'previewImage'].concat(addApiList)
    // if(true){
    if(isWechatBroser()){
        toGetWechatApiPro(url)
        .then(res => {
            if(testTime){
                console.log('从接口获取 data，完成时间：', new Date().getTime() - startTime)
            }
            const data = res.data
            // console.log('从接口获取需要签名的数据 data:', data)
            wx.config({
                debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
                appId: data.AppId, // 必填，公众号的唯一标识
                timestamp: data.timestamp, // 必填，生成签名的时间戳
                nonceStr: data.nonceStr, // 必填，生成签名的随机串
                signature: data.signature,// 必填，签名
                jsApiList // 必填，需要使用的JS接口列表
            })
            wx.ready(function () {
                // console.log('wx.ready')
                if(typeof fn === 'function') fn(true)
            })
        })
        .catch(res => {
            console.log(res)
            if(typeof fn === 'function'){
                fn(false)
            }
        })
    }
}

// 自定义分享
export function customShare({shareData = '', fn = ''}){
    if(isWechatBroser() && shareData){
        if(wx.onMenuShareTimeline){
            // 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口（即将废弃）
            wx.onMenuShareTimeline({
                title: shareData.shareDynamic.title, // 分享标题
                link: shareData.shareDynamic.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                imgUrl: shareData.shareDynamic.imgUrl, // 分享图标
                desc: shareData.shareDynamic.desc || '',
                success: function () {
                    // 用户点击了分享后执行的回调函数
                    console.log('已分享成功')
                }
            })

            // 获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口
            wx.onMenuShareWeibo({
                title: shareData.shareDynamic.title, // 分享标题
                desc: shareData.shareDynamic.title, // 分享描述
                link: shareData.shareDynamic.link, // 分享链接
                imgUrl: shareData.shareDynamic.imgUrl, // 分享图标
                success: function () {
                    // 用户确认分享后执行的回调函数
                    console.log('已分享成功')
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            })

            // 获取“分享给朋友”按钮点击状态及自定义分享内容接口（即将废弃）
            wx.onMenuShareAppMessage({
                title: shareData.shareFriend.title, // 分享标题
                desc: shareData.shareFriend.desc, // 分享描述
                link: shareData.shareFriend.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                imgUrl: shareData.shareFriend.imgUrl, // 分享图标
                success: function () {
                    // 用户点击了分享后执行的回调函数
                    console.log('已分享成功')
                }
            })

            // 获取“分享到QQ”按钮点击状态及自定义分享内容接口（即将废弃）
            wx.onMenuShareQQ({
                title: shareData.shareFriend.title, // 分享标题
                desc: shareData.shareFriend.desc, // 分享描述
                link: shareData.shareFriend.link, // 分享链接
                imgUrl: shareData.shareFriend.imgUrl, // 分享图标
                success: function () {
                    // 用户确认分享后执行的回调函数
                    console.log('已分享成功')
                },
                cancel: function () {
                    // 用户取消分享后执行的回调函数
                }
            })
        }else{
            wx.updateAppMessageShareData({//分享微信朋友及QQ朋友
                title: shareData.shareFriend.title, // 分享标题
                desc: shareData.shareFriend.desc, // 分享描述
                link: shareData.shareFriend.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                imgUrl: shareData.shareFriend.imgUrl, // 分享图标
            }, function(res) { 
                //这里是回调函数 
                console.log('已分享成功')
                console.log('分享微信朋友及QQ朋友 res', res)
            })
            
            wx.updateTimelineShareData({ //分享腾讯微博及朋友圈
                title: shareData.shareDynamic.title, // 分享标题
                link: shareData.shareDynamic.link, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
                imgUrl: shareData.shareDynamic.imgUrl, // 分享图标
            }, function(res) {
                //这里是回调函数 
                console.log('已分享成功')
                console.log('分享腾讯微博及朋友圈 res', res)
            })
        }
        
        if(typeof fn === 'function') fn()
    }
}

export function clickWechatShare() {
    if (isLonginChosePage()) {
        if (isWechatBroser()) {
            return true
        }
        textVantToa({message: '请用微信客户端打开'})
        return false
    }
}